The present invention relates generally to performance control devices and methods suitable for use with tone generating devices that generate tones in accordance with performance data supplied thereto, and more particularly to a technique by which a performance effect with a feeling of swing can be selectively imparted to a musical performance based on supplied performance data.
Performance control technique has been conventionally known which, during the course of a music performance based on square performance data, executes control to delay tone-generation start time at each even-numbered beat (upbeat) to thereby produce a feeling of "swing" as often found in, for example, a jazz performance. To selectively execute an automatic performance giving a feeling of swing, it has been conventional to carry out so-called "swing processing" where selected performance data are subjected to a delay process for a swing effect.
The conventional swing processing will be discussed below with reference to FIG. 2. In FIG. 2, item A represents a time of one measure and each "step time" within the measure is chosen to equal the length of a quarter note corresponding to 120 clock pulses; thus, one measure has a length corresponding to 480 clock pulses. Note that each clock pulse represents timer-interrupt timing in a tone generating device.
At "(a)" of item B in FIG. 2, performance data to be performed in staccato such that no overlap of two successive tones occurs are shown as a pulse waveform. In the pulse waveform, each of rising edge times t0, t1, t2 and t3 represents tone-generation start (key-on) timing, each of falling edge times represents tone-generation end (key-off) timing, and each tone-generation lasting period or duration from the key-on timing to the corresponding key-off timing is denoted as a gate time (Gate time). Item B in FIG. 2 shows an example where the ratio of each even-numbered-beat gate time to the step time (gate ratio or G) is chosen to be smaller than "1". Thus, if the gate ratio is 0.8 (G=0.8) as shown, "Gate time 1" equals 96 clock pulses (120 clock pulses.times.0.8).
At "(b)" of item B in FIG. 2, there are shown performance data obtained by applying the swing processing to the performance data ("data swing-processed by conventional"). In the illustrated example, key-on timing of a first even-numbered-beat note (second note in the measure) is shown as delayed, through the swing processing, by a time corresponding to 50 clock pulses. Namely, the time corresponding to 50 clock pulses is set as the swing time, so that sounding or tone generation of the even-numbered-beat note, which is originally set to start at time t1, is initiated upon lapse of 50 clock pulses from time t1, with the result that the even-numbered-beat note having undergone the swing processing overlaps a third-beat note in the measure.
Further, at "(a)" of item C in FIG. 2, performance data to be performed in legato such that two successive tones overlap each other are shown as a pulse waveform. In the pulse waveform, each of rising edge times t0, t1, t2 and t3 represents tone-generation start (key-on) timing, each of falling edge times represents tone-generation end (key-off) timing, and the duration from the key-on timing to the corresponding key-off timing is denoted as a gate time (Gate time). Note that item C in FIG. 2 shows an example where the ratio of each gate time to the step time (gate ratio or G) is chosen to be not smaller than "1" and not greater than "2" (1.ltoreq.Gate.ltoreq.2). Thus, if the gate ratio is 1.2 (G=1.2) as shown, "Gate time 1" equals 144 clock pulses (120 clock pulses.times.1.2).
At "(b)" of item C in FIG. 2, there are shown performance data obtained by applying the swing processing to the performance data ("data swing-processed by conventional"). In the illustrated example, key-on timing of a first even-numbered-beat note (second note in the measure) is shown as delayed, through the swing processing, by a time corresponding to 50 clock pulses. Namely, the time corresponding to 50 clock pulses is set as the swing time, so that sounding of the even-numbered-beat note, which is originally set to start at time t1, is initiated 50 clock pulses after time t1, with the result that the even-numbered-beat note having undergone the swing processing significantly overlaps a third-beat note in the measure.
If the conventional swing processing is applied to performance data that are to be performed in staccato, key-off timing of the swing-processed tone occurs after key-on timing of a next one, as shown at (b) of item B in FIG. 2. Thus, the swing processing would create a period when the two successive tones are generated simultaneously in an overlapping manner, and as a consequence, a staccato performance would undesirably result in a legato-like performance contrary to player's intent.
Further, if the conventional swing processing is applied to performance data that are to be performed in legato, key-off timing of the swing-processed tone would be so delayed that the tone significantly overlaps the next tone as shown at (b) of item C in FIG. 2, and the key-off timing of the swing-processed tone could be delayed great enough to come behind key-on timing of a tone following the next one. For example, where the second and third notes are to be performed in legato and the third and fourth notes are to be performed in staccato, the conventional swing processing would present a problem. The performance could not be carried out as originally intended because the seconds note would overlap the cessation of the third note and the onset of the fourth note. Thus, the listener would not perceive the intended intervening break between the third and forth notes. This adverse effect would become particularly serious when same-pitch notes are to be sounded successively in staccato, because attack portions of notes following the first-sounded note are unavoidably lost, as will be detailed below with reference to FIGS. 9A and 9B.
FIG. 9A shows a manner in which same-pitch notes are performed in staccato on the basis of performance data not having undergone the swing processing, while FIG. 9B shows a manner in which the same-pitch notes are performed in staccato on the basis of the performance data having undergone the swing processing. In the example of FIG. 9A, the tone volume rises sharply at key-on timing of the first note, then slightly falls and then becomes stable. The tone volume rising portion is commonly called an "attack portion". If key-on timing of the second note comes after the key-off timing of the first note as shown in FIG. 9A, then the first and second notes can be sounded without the respective attack portions being lost.
However, if the key-on timing of the first note is delayed, by the swing processing, to come after the key-on timing of the second note as shown in FIG. 9B, the first and second notes would be sounded simultaneously, and thus the attack portion of the second note having the same pitch as the first note would be undesirably lost as denoted in broken line. Due to the loss of the attack feeling of the second note, the performance as a whole would greatly differ from what was originally intended by the player.
Also, if, when a plurality of same-pitch notes are being sounded, key-off operation for that pitch is executed in response to a key-off signal of the first note, all the other notes of the pitch following the first note would be undesirably caused to stop sounding together.
Further, if, in the case where the swing processing is applied to each even-numbered beat, the user sets the processing to be executed during repetitive reproduction of performance data consisting of, for example, nine beats, then the swing processing is not effected at a ninth beat (which is an odd-numbered beat) in the first reproduction of the performance data but effected at a first beat (which is also an odd-numbered beat) in the next or second reproduction. Because the swing processing is thus applied to the first beat in the second reproduction (i.e., a tenth beat in the swing-processed performance data) although the first beat must always be left uninfluenced by the swing processing, the performance data would become 18-beat data that was not intended by the player.